struct f
{
  struct _
  {
    typedef _ value;
    template< class x, class=void>
    struct app
    {
      struct _
      {
        typedef _ value;
        template< class y, class=void>
        struct app
        {
          struct _:  e::_::template app<x >::_::
		           template app<y >::_
          {
            typedef typename e::_::template app<x >::_::
			        template app<y >::_::value value;
          };
        };
      };
    };
  };
};

